/*
* Copyright (C) 2020 ~ 2024 chaigec All Rights Reserved.
*
* Author:     chaigec <chaigec@163.com>
* Maintainer: chaigec <chaigec@163.com>

 * Use of this source code is governed by MIT license that can be found in the
 * LICENSE file in the root of the source tree. All contributing project authors
 * may be found in the AUTHORS file in the root of the source tree.
*/

#ifndef MK_RTMP_UT_H
#define MK_RTMP_UT_H
#include "MkMedia/MkMediaUtil.h"
#include "MkUtil/MkLock.h"
#include <gtest/gtest.h>

class CMkEventPool;
class CMkTimer;
class CMkH264FileSource;
class CMkH265FileSource;
class CMkAacFileSource;
class CMkMediaConsume;
class CMkGbMediaServer;
class CMkGbMediaEndUser;
class CMkRtpServerPool;
class CMkMediaSource;
class CMkGbMediaServerUt :  public testing::Test
{
public:
    CMkGbMediaServerUt();
    ~CMkGbMediaServerUt();

    void SetUp() override;
    void TearDown() override;

    CMkEventPool*   m_pEventPool;
    CMkTimer*       m_pTimer;
    Uint16          m_ServerPort;
    Uint16          m_EndUserPort;
    CMkGbMediaServer*  m_pGbMediaServer;
    CMkGbMediaEndUser*   m_pGbEndUser;
    void*           m_WaitHandle;
    CMkMediaConsume* m_pMediaConsume;
    CMkRtpServerPool* m_pRtpServerPool;
    CMkRtpServerPool* m_pRtpPoolClientUse;

    CMkH264FileSource* m_pH264FileSource;
    CMkH265FileSource* m_pH265FileSource;
    CMkAacFileSource*  m_pAacFileSource;
    MkVector<MkEsPacket> m_VecPacket264;
    MkVector<MkEsPacket> m_VecPacket265;
    MkVector<MkEsPacket> m_VecPacketAac;

    CMkH264FileSource* m_pH264PublishSource;
    CMkMediaSource* m_pPublishedSource;

    MkString    m_ServerId;
    MkString    m_GbRealm;
    MkString    m_EndUserId;
    MkString    m_EndUserSession;
};



#endif